package com.example.mybatis.mapper;

import com.example.mybatis.pojo.User;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ws
 * Date: 2024-01-18
 * Time: 15:08
 */
public interface SelectMapper {
    /**
     * 根据 id 查询用户信息
     */
    User getUserById(@Param("id") Integer id);

    /**
     * 查询所有的用户信息
     */
    List<User> getAllUser();


    /**
     * 查询用户信息的总计记录数
     */
    Integer getCount();


    /**
     * 根据 id 查询用户信息为一个 Map 集合
     */
    Map<String, Objects> getUserByIdToMap(@Param("id") Integer id);


    /**
     * 查询所有的用户信息为 map 集合，每个用户信息都是一个 Map 集合
     * 所以升级为 List
     */
    List<Map<String, Objects>> getAllUserToMap();


    /**
     * 查询所有的用户信息为 map 集合
     * 使用数据中的 primary key id 作为 key，用户的所有信息为 value
     */
    @MapKey("id")
    Map<Integer, Objects> getAllUserToMapId();
}
